Network communications often use a seven layer communication model developed by the International Standards Organization (ISO) and known as the Open Systems Interconnection (OSI) networking suite. The seven layers are physical (L1), logical or data link (L2), network (L3), transport (L4), session (L5), presentation (L6), and application (L7). Each layer performs certain functions. When all seven layers work together, data is brought to the application level if received from the network. Data from the application level is also sent down the model and transferred over the physical transportation media.
In the physical layer (L1), the physical properties of the various communications media, as well as the electrical properties and interpretation of the exchanged signals are handled. The logical layer (L2) handles the logical organization of data bits transmitted through a particular medium. The network layer (L3) describes how a series of exchanges over various data links can deliver data between any two nodes in a network, for example Internet protocol (IP). The transport layer (L4) handles the quality and nature of the data delivery, for example, transport control protocol. The session layer (L5) handles the organization of data sequences larger than the packets handled by lower layers. The presentation layer (L6) describes the syntax of data being transferred, and in the application layer (L7) the actual implementation of the application gets performed, for example, an implementation of a file transfer protocol (FTP).
Traditionally L1 and L2 were implemented in hardware and L3 through L7 in software, mostly in a host or a client. In addition to the seven-layer model, OSI also includes a set of protocols for handling data.
This model is now widely used as an operating model for transporting packetized data. While acceleration of the operations in a network are required, the inherent architecture of the network is maintained to enable easy configuration of products from a multitude of suppliers, all generally conforming to the standard.
A typical architecture of a network system is shown in FIG. 1. Architecture 100 comprises of an application 110, protocols 120 and 130 and drivers 140 implemented in software, usually on the host, and a network interface card (NIC) 150 which deals with at least layers 1 and 2. Therefore, in this implementation, layers 3 and above are implemented in software on the host. The need for acceleration of the operations involved in handling of data to be communicated over the network arises from the fact that networks provide significantly faster communication speeds (now approaching over 10 giga bits per second) as well as the volume of data to be transferred. Handling such a volume of data by a host is a daunting task requiring significant computing power not normally available to such hosts.
Solutions in the related art attempt to provide acceleration of the operations involved in handling data communication. These related art solutions generally take one of two routes. The first breaks from the standard OSI model and suggests other solutions to accelerate performance. Examples for such approaches are shown in U.S. Pat. No. 6,018,530 by Chakravorty and U.S. Pat. No. 6,273,622 by Ben-David.
The second approach attempts to accelerate certain portions of the protocols, for example, implementing a higher layer (for example L3 or L4), that were traditionally handled in software, in hardware. Examples of such approaches are shown in U.S. Pat. 5,717,691 by Dighe et al. and U.S. patent application Ser. No. 20020087729 by Edgar. However, none of the related art approaches teach architectures and methods for offloading transport protocols and upper layer protocol from the host software.